package pe.gob.pj.sri.dao.imp;

import java.util.Map;

import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.stereotype.Repository;

import pe.gob.pj.sri.bean.Usuario;
import pe.gob.pj.sri.dao.UsuarioDAO;

@Repository("usuarioDAO")
public class UsuarioDAOImp extends JdbcDaoSupport implements UsuarioDAO {

	public Usuario login(String id, String pass) throws Exception {
		Usuario u = null;
		String query = "SELECT * FROM usuario  WHERE idUsuario = ? AND password = ?";
		System.out.println("1");
		Map<String, Object> objeto = (Map<String, Object>) getJdbcTemplate()
				.queryForMap(query, id, pass);
		System.out.println("2");
		if (objeto != null) {
			System.out.println("3");
			u = new Usuario();
			u.setApellidoMaterno(objeto.get("apellidoMaterno").toString());
			u.setApellidoPaterno(objeto.get("apellidoPaterno").toString());
			u.setDEPARTAMENTO_codigoDEPARTMENTO(objeto.get(
					"DEPARTAMENTO_codigoDEPARTAMENTO").toString());
			u.setNombre(objeto.get("nombre").toString());
			System.out.println("4");
		}

		return u;
	}

	public void registarUsuario(Usuario u) throws Exception {
		// TODO Auto-generated method stub
		String query = "INSERT INTO usuario (idUsuario, nombre, apellidoPaterno, apellidoMaterno, "
				+ "password, tfijo, tcelular, especialidad, DEPARTAMENTO_codigoDEPARTAMENTO, Cargo_codigoCargo)"
				+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?,?,?)";

		getJdbcTemplate().update(
				query,
				new Object[] { u.getIdUsuario(), u.getNombre(),
						u.getApellidoPaterno(), u.getApellidoMaterno(),
						u.getPassword(), u.getTfijo(), u.getTcelular(),
						u.getEspecialidad(),
						u.getDEPARTAMENTO_codigoDEPARTMENTO(),
						u.getCargo_codigoCargo() });

		System.out.println("Se inserto correctamente");
		System.out.println("4");
	}

	public void eliminarUsuario(Usuario u) throws Exception {
		// TODO Auto-generated method stub
		String query = "DELETE FROM usuario WHERE idUsuario = ?";
		this.getJdbcTemplate().update(query, new Object[] { u.getIdUsuario() });
		System.out.println("Usuario eliminado " + u.getIdUsuario());
	}

	public void actualizarUsuario(Usuario u) throws Exception {
		// TODO Auto-generated method stub
		System.out.println("Actualizar usuario");
	}

	public Usuario obtenerUsuario(String idUsuario) throws Exception {
		// TODO Auto-generated method stub
		System.out.println("ObtenerUsuario");
		return null;
	}

}
